Software applications can undergo frequent revisions to the underlying software code by different developers. However, as software applications become more robust (e.g., millions of lines of code), testing the software applications for errors after each revision becomes increasingly time consuming. For example, with every revision to the underlying code of a software application, a full suite of tests is typically executed to determine whether or not the code revisions caused errors. However, executing a full suite of tests can take days and can impose a significant burden on processing resources. Further, in situations with short delivery cycles, there is simply not enough time to run a full suite of tests before releasing the software product.